home *** CD-ROM | disk | FTP | other *** search
- *Routines:
-
- *BScreenInit inizializza copperlist
- *BScreenConvert converte lo schermo chunky su schermo fisico
- *BScreenWait aspetta che il processo di conversione
- * fatto partire da BScreenConvert o BScreenReStart finisca
- *BScreenReStart rifa' la conversione usando gli schermi usati
- * l'ultima volta da BScreenConvert
-
- *mk2xY usata per inizializzare da BScreenInit
- *c2bs usata per effettuare la conversione da BScreenConvert
-
-
- ;Costanti globali
- BScreenPlaneW equ 320
- BScreenPlaneH equ 256
- BScreenPlaneSize equ (BScreenPlaneW/8)*BScreenPlaneH
-
- BScreenChunkyW equ 160 ;Width of chunky screen
- BScreenChunkyH equ 128 ;Height of chunky screen
- BScreenChunkySize equ BScreenChunkyW*BScreenChunkyH
-
- BScreenYStart equ $28
-
-
-
- ;**************
- ;Little macro to reduce code redundancies
- BScreenStartMacro macro
- move.w #1,bltbsy ;in case of calc faster than conversion
- .waitblt\@
- btst.b #6,$dff002
- bne.s .waitblt\@
- move.w #$8040,$dff09c ;activate blit intreq
- endm
-
-
- * -----------
-
- ;****** Global variables ******
- bltpc dc.l 0 ;pointer to blitterinstructions to be done
- bltbsy dc.w 0 ;this is 0 if all blitter-passes are done
-
-
-
- *******************************
- *Inizializza la copperlist (usare quella fatta apposta)
- *in base alle variabili settate all'inizio del modulo
- BScreenInit
- movem.l d2-d7/a2-a6,-(sp)
-
- *--- Copy the Common Coplist section to the two buffers (do not touch a1)
-
- lea.l BScreenCoplist,a0
- lea.l BScreenCoplist0,a2
- lea.l BScreenCoplist1,a3
- lea.l BScreenCoplist_End,a4
- .coploop
- COLOR0 $a00
- move.w (a0),(a2)+ ;coplist 0
- move.w (a0)+,(a3)+ ;coplist 1
- COLOR0 $000
- cmpa.l a0,a4 ;alla fine???
- bne.s .coploop
-
- move.l a2,.cop0free
- move.l a3,.cop1free
-
-
- *--- Initialize the coptable used in Int3
-
- move.l #BScreenCoplist0,BScreenCopTable
- move.l #BScreenCoplist1,BScreenCopTable+4
-
-
- *--- fill the two copperlists
-
- move.l #BScreenYStart,d2 ;ystart
- move.l #BScreenChunkyH,d3 ;anz lines
- move.l #BScreenPlaneW/8,d5 ;linesize
-
- move.l #$01020010,d1 ;value for make bitplanes (first time)
- move.l .cop0free(PC),a0
- lea.l BScreenSpriteData0,a1
- lea.l BScreenSpriteBuffer0,a2 ;buffer per gli sprites di copertura
- bsr mk2xY ;effettua i precalcoli e fa partire il blitter
- move.l #$fffffffe,(a0)+ ;istruzione di fine coplist
-
-
- move.l #$01020021,d1 ;value for make bitplanes (first time)
- move.l .cop1free(PC),a0
- lea.l BScreenSpriteData1,a1
- lea.l BScreenSpriteBuffer1,a2 ;buffer per gli sprites di copertura
- bsr mk2xY ;effettua i precalcoli e fa partire il blitter
- move.l #$fffffffe,(a0)+ ;istruzione di fine coplist
-
-
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- .cop0free ds.l 1
- .cop1free ds.l 1
-
-
-
-
- ;**************************
- ;Converte schermo chunky su schermo fisico in formato speciale
- ;bisogna aver chiamato prima BScreenInit e settato la routine
- ;di interrupt livello 3 predefinita
- ;IN:
- ; a0 ^Schermo chunky da convertire
- ; a1 ^Schermo planare su cui convertire inizializzato in BScreenInit
- BScreenConvert
- movem.l d0-d7/a0-a6,-(sp)
-
- lea.l BScreenList,a6
-
- lea.l BScreenBuffer,a2
- lea.l BScreenScrambleBuffer,a3
-
- move.l #BScreenChunkySize,d0
- move.l #BScreenPlaneSize,d1
-
- jsr c2bs ;hehehe =:)) adios copperscreen...
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
-
-
-
- ******************************************
- ;Io la richiamo in BScreenInit con i parametri gia' a posto
- *** 2xY: Make a special 2x2 or 2x1 screen ***
-
- * NOTE: 2x2 or 2x1 depends on the modulo/doublescan-bit you chose
- * in header coplist! Also make sure sprites are 64bit, highest
- * pri, and chose the spritebank that got a dark color at offset 1
- * (col 1,17,33....)
-
- * IN: ALL BUFFERS IN CHIPMEM!!!
-
- * ^spritebuffer: A2 (size: 312*4*2*8)
- * ^Sprite data to use: A1
- * ^Coplist: A0
-
- * first value of shift for coplist: D1.l ($1020001 or $1020021)
- * Ystart: D2.l number of lines (0-127): D3.w
- * linesize: D5.w
-
-
- mk2xY
-
- bsr BScreen_mspr ;gen cover-sprites in (a2)+ and copmoves in (a0)+
-
- bsr BScreen_mbpl ;gen planes ptr and lines shifters
-
- rts
- *
- * installa i puntatori ai bitplanes e tutti i waits sfasati
- * IN:
- * a0 ^coplist
- * d1.l first value of shift (#$01020010 first time,#$01020021 the second)
- * d2.l YStart
- * d3.w num of lines
- * d5.w linesize
- * OUT:
- * a0 ^primo byte libero della coplist dopo i dati installati
- *
- BScreen_mbpl
- movem.l d0-d7/a1-a6,-(sp)
-
- ext.l d5
-
- * Generate waits and shifts with $102
- and.l #$ff,d2 ;maschera Y Start a modulo 256
- sub.b #1,d2 ;sub #1: prev line
- ror.l #8,d2 ; $YY000000
- move.l #$00e1fffe,d4 ;last X-Wait valid for copper
- or.l d2,d4 ; $YYe1fffe Wait for copper
- *
- move.w d3,d0 ;num of lines
- subq.w #1,d0 ;ok for cicle
- .mf256yanz
- ; move.l #$01020010,d7 ;costant : NOW d1 is used as input for this
- move.w #2-1,d6 ;two times
- .mf256do2
- move.l d4,(a0)+
- add.l #$01000000,d4 ;cwait
- move.l d1,(a0)+
- eor.l #$00000031,d1 ;horiz shift
- ; ^---- 3: 1 -> 2 -> 1 -> 2 ....
- dbra d6,.mf256do2
-
- dbra d0,.mf256yanz
-
- movem.l (sp)+,d0-d7/a1-a6
- rts
-
- .mfloffs dc.l 0
-
-
- *
- * Sprites that mask out doubleplane-data-rubbish
- * IN:
- * a0 coplist to cover
- * a1 ^ to sprite datas to insert (BScreenSpriteData0 the first time, BScreenSpriteData1 the second)
- * a2 sprite buffer (COPLIST: FMODE=$F, $dff104=$003f!)
- * OUT:
- * a0 first byte clear over the filled coplist
- * mksprites into sprbuf=(a2)+ and according coppermoves in (a0)+
- *
- BScreen_mspr
- movem.l d0-d7/a1-a6,-(sp) ;no a0! coz *copl
-
- move.l #$00968020,(a0)+ ;rehash sprites (for safety)
-
- ;allinea sprbuf a multiplo di 16
- move.l a2,d0 ;indirizzo buffers per sprites
- add.l #15,d0 ;15 bytes dopo
- and.l #$fffffff0,d0 ;machero
- move.l d0,a2 ;align
-
- move.w #$0120,d1 ;spr0pth
-
- move.w #8-1,d7 ;sprcnt, numero sprites usati
- .mf2mkspr
- * cmoves for sprptr in copl
-
- move.l a2,d0 ;indirizzo buffer
- move.w d1,(a0)+ ;registro in coplist ($120,$124,...)
- addq.w #2,d1 ;hiptr -> loptr
- swap d0 ;bit piu' significativi
- move.w d0,(a0)+ ;in coplist.
- swap d0 ;hiwd, bit meno significativi
- move.w d1,(a0)+ ;reg incoplist ($122,$126,...)
- addq.w #2,d1 ;next sprptr
- move.w d0,(a0)+ ;indirizzo basso on coplist
-
- * make sprbuf ;a1 ^sprdata a2 ^coplist
- move.l (a1)+,(a2)+ ;ctl1 (vstart+hstart+null.w)
- move.l #0,(a2)+ ;dummy for 64bit fetchmode
- move.l (a1)+,(a2)+ ;ctl2 (vstop+ctrl+null.w)
- move.l #0,(a2)+ ;dummy for 64bit fetchmode
-
- move.l (a1)+,d2 ;plane data 0
- move.l (a1)+,d3 ;plane data 1
- move.l d2,d4
- ror.l #1,d4 ;plane data 0 >> 1
- move.l d3,d5
- ror.l #1,d5 ;plane data 1 >> 1 (but!!! is ever 0!!!)
-
- move.w #128-1,d6 ;number of lines to fill
- .mf2mksprdat
- move.l d2,(a2)+ ;plane data 0
- move.l d2,(a2)+ ;again (a line is 64 bit wide)
- move.l d3,(a2)+ ;plane data 1
- move.l d3,(a2)+ ;again
- ;2nd line, now fill the shifted line
- move.l d4,(a2)+ ;plane data 0
- move.l d4,(a2)+
- move.l d5,(a2)+ ;plane data 1
- move.l d5,(a2)+ ;2nd plane
-
- dbra d6,.mf2mksprdat ;fill all lines
-
- move.l #$0,(a2)+ ;8 words nulle per fine sprite
- move.l #$0,(a2)+
- move.l #$0,(a2)+
- move.l #$0,(a2)+
-
- dbra d7,.mf2mkspr ;do all sprites
-
- movem.l (sp)+,d0-d7/a1-a6 ;ohne a0! weil *copl
- rts
-
- *
- * ctl 1, ctl 2, plane 0, plane 1 (to be lsr'd for 2nd line)
- BScreenSpriteData0
- dc.l $28400000,$a7020000,$aaaaaaaa,$00000000
- dc.l $28600000,$a7020000,$aaaaaaaa,$00000000 ;1 & 2 nonattached, col 1 :)
- dc.l $28800000,$a7020000,$aaaaaaaa,$00000000
- dc.l $28800000,$a7820000,$00000000,$00000000
- dc.l $28a00000,$a7020000,$aaaaaaaa,$00000000
- dc.l $28a00000,$a7820000,$00000000,$00000000
- dc.l $28c00000,$a7020000,$aaaaaaaa,$00000000
- dc.l $28c00000,$a7820000,$00000000,$00000000
-
- BScreenSpriteData1
- dc.l $28400000,$a7020000,$55555555,$00000000
- dc.l $28600000,$a7020000,$55555555,$00000000 ;1 & 2 nonattached, col 1 :)
- dc.l $28800000,$a7020000,$55555555,$00000000
- dc.l $28800000,$a7820000,$00000000,$00000000
- dc.l $28a00000,$a7020000,$55555555,$00000000
- dc.l $28a00000,$a7820000,$00000000,$00000000
- dc.l $28c00000,$a7020000,$55555555,$00000000
- dc.l $28c00000,$a7820000,$00000000,$00000000
-
-
-
-
- **************************************
- ;Io la richiamo in BScreenConvert
- *** non-scrambled chunky-to-planar ***
- * not really c2p (!), destination is special 2x2 or 2x1 screen
- *
- * IN: ALL BUFFERS IN CHIPMEM *except blitterlist (a6)* !!!
- *
- * a3: scramble-buffer at size of chunky buffer
- *
- * other regs identical to sc2bs ! they are:
- *
- * a6: blitter-list buffer (size: less than 2k)
- * a0: chunky buffer a1: screen a2: pass-buffer (half size of chunky buffer)
- * d0.l: number of chunky pixels d1.l: planeoffset
-
- c2bs
- tst.w bltbsy
- bne.s c2bs ;for the very unlikely case your mapping-
- ;engine renders faster than blitterc2p ;)
-
- move.l a6,bltpc ;handler starts at bltpc
-
- movem.l d0-d1/a0-a3,-(sp)
- move.l a3,a4 ;well....
-
- *** init values
-
- move.l #$04000096,(a6)+
- move.l #$80400096,(a6)+
-
- move.l #$ffff0044,(a6)+
- move.l #$ffff0046,(a6)+
-
- *** scrambling passes
- ;subpass 1
- lea (a0),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea 4(a0),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea (a4),a3
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$8de40040,(a6)+
- move.l #$00000042,(a6)+
- move.l #$00ff0070,(a6)+ ;cdat
-
- move.l #$00060064,(a6)+
- move.l #$00060062,(a6)+ ;a/b mod
- move.l #$00060066,(a6)+ ;d mod
-
- move.l d0,d6
- lsr.l #3,d6 ;1/4 of scr, words => /8
- move.w d6,(a6)+
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- ;subpass2
- lea 2(a0),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea 6(a0),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea 2(a4),a3
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$8de40040,(a6)+
- move.l #$00000042,(a6)+
- move.l #$00ff0070,(a6)+ ;cdat
-
- move.l #$00060064,(a6)+
- move.l #$00060062,(a6)+ ;a/b mod
- move.l #$00060066,(a6)+ ;d mod
-
- move.l d0,d6
- lsr.l #3,d6 ;1/4 of scr, words => /8
- move.w d6,(a6)+
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- ;subpass 3
- lea -4(a0,d0.l),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea -8(a0,d0.l),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea -4(a4,d0.l),a3
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$8de40040,(a6)+
- move.l #$00020042,(a6)+
- move.l #$ff000070,(a6)+ ;cdat
-
- move.l #$00060064,(a6)+
- move.l #$00060062,(a6)+ ;a/b mod
- move.l #$00060066,(a6)+ ;d mod
-
- move.l d0,d6
- lsr.l #3,d6 ;1/4 of scr, words => /8
- move.w d6,(a6)+
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- ;subpass 4
- lea -2(a0,d0.l),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea -6(a0,d0.l),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea -2(a4,d0.l),a3
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$8de40040,(a6)+
- move.l #$00020042,(a6)+
- move.l #$ff000070,(a6)+ ;cdat
-
- move.l #$00060064,(a6)+
- move.l #$00060062,(a6)+ ;a/b mod
- move.l #$00060066,(a6)+ ;d mod
-
- move.l d0,d6
- lsr.l #3,d6 ;1/4 of scr, words => /8
- move.w d6,(a6)+
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
-
- ***
- movem.l (sp)+,d0-d1/a0-a3
-
- move.l a3,a0 ;scrambled data is now there
- bra sc2bsenter
-
- *** scrambled chunky-to-planar =:) ***
-
- sc2bs
-
- tst.w bltbsy
- bne sc2bs
-
- move.l a6,bltpc
-
- sc2bsenter:
-
- * IN: IN: ALL BUFFERS IN CHIPMEM *except blitterlist (a6)* !!!
- *
- * a6: blitter-list buffer (size: less than 2k)
- * a0: chunky buffer a1: screen a2: pass-buffer (half size of chunky buffer)
- * d0.l: number of chunky pixels d1.l: planeoffset
-
- *** init values
- move.l #$04000096,(a6)+
- move.l #$80400096,(a6)+
-
- move.l #$ffff0044,(a6)+
- move.l #$ffff0046,(a6)+
-
- ;offsets to end of buffers for blitter DESCing
- move.l d0,d6 ;len of chscr
- move.l d6,d5
- lsr.l #1,d5 ;len of buf2
- move.l d6,d4
- lsr.l #2,d4 ;len of 1 plane = 320*128/8, ok.
-
- *** Pass 1, planes 7654
-
- lea (a0),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea 2(a0),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
-
- move.l a2,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a2,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$4de40040,(a6)+
- move.l #$00000042,(a6)+
- move.l #$0f0f0070,(a6)+ ;cdat
-
- move.l #$00020064,(a6)+
- move.l #$00020062,(a6)+ ;a/b mod
- move.l #$00000066,(a6)+ ;d mod
-
- move.w d4,(a6)+ ;d4: nr_pix/4 (words!)
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- *** Pass 2, planes 76
-
- lea (a2),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea 2(a2),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea (a1),a3
- add.w d1,a3
- add.w d1,a3
- add.w d1,a3 ;4th "doubleplane"
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$2de40040,(a6)+
- move.l #$00000042,(a6)+
- move.l #$33330070,(a6)+ ;cdat
-
- move.l #$00020064,(a6)+
- move.l #$00020062,(a6)+ ;a/b mod
- move.l #$00000066,(a6)+ ;d mod
-
- move.w d4,d0
- lsr.w #1,d0
- move.w d0,(a6)+ ;d4: nr_pix/8 (words!)
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- *** Pass 2, planes 54
-
- lea -2(a2,d5.l),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea -4(a2,d5.l),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea -2(a1,d4.l),a3
- add.w d1,a3
- add.w d1,a3 ;3rd "doubleplane"
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$2de40040,(a6)+
- move.l #$00020042,(a6)+ ;DESC
- move.l #$cccc0070,(a6)+ ;cdat
-
- move.l #$00020064,(a6)+
- move.l #$00020062,(a6)+ ;a/b mod
- move.l #$00000066,(a6)+ ;d mod
-
- move.w d4,d0
- lsr.w #1,d0
- move.w d0,(a6)+ ;d4: nr_pix/8 (words!)
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- *** Pass 1, planes 3210
-
- lea -2(a0,d6.l),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea -4(a0,d6.l),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea -2(a2,d5.l),a3
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$4de40040,(a6)+
- move.l #$00020042,(a6)+
- move.l #$f0f00070,(a6)+ ;cdat
-
- move.l #$00020064,(a6)+
- move.l #$00020062,(a6)+ ;a/b mod
- move.l #$00000066,(a6)+ ;d mod
-
- move.w d4,(a6)+ ;d4: nr_pix/4 (words!)
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- *** Pass 2, planes 32
-
- lea (a2),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea 2(a2),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea (a1),a3
- add.w d1,a3 ;2nd "doubleplane"
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$2de40040,(a6)+
- move.l #$00000042,(a6)+
- move.l #$33330070,(a6)+ ;cdat
-
- move.l #$00020064,(a6)+
- move.l #$00020062,(a6)+ ;a/b mod
- move.l #$00000066,(a6)+ ;d mod
-
- move.w d4,d0
- lsr.w #1,d0
- move.w d0,(a6)+ ;d4: nr_pix/8 (words!)
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- *** Pass 2, planes 10
-
- lea -2(a2,d5.l),a3
- move.l a3,(a6)+
- move.w #$004c,-2(a6) ;B
- move.w a3,(a6)+
- move.w #$004e,(a6)+
- lea -4(a2,d5.l),a3
- move.l a3,(a6)+
- move.w #$0050,-2(a6) ;A
- move.w a3,(a6)+
- move.w #$0052,(a6)+
- lea -2(a1,d4.l),a3
- ;1st "doubleplane"
- move.l a3,(a6)+
- move.w #$0054,-2(a6) ;D
- move.w a3,(a6)+
- move.w #$0056,(a6)+
-
- move.l #$2de40040,(a6)+
- move.l #$00020042,(a6)+ ;DESC
- move.l #$cccc0070,(a6)+ ;cdat
-
- move.l #$00020064,(a6)+
- move.l #$00020062,(a6)+ ;a/b mod
- move.l #$00000066,(a6)+ ;d mod
-
- move.w d4,d0
- lsr.w #1,d0
- move.w d0,(a6)+ ;d4: nr_pix/8 (words!)
- move.w #$5C,(a6)+ ;SIZV
-
- move.l #$0001005E,(a6)+ ;SIZH+start
-
- *** end of initblit
- move.l #0,(a6)+
-
- BScreenStartMacro
- rts
-
-
- ;******************************
- ;Wait for previous phase of blitscreen to finish
- BScreenWait
- .loop
- tst.w bltbsy
- bne.s .loop
- rts
-
- ;******************************
- ;Start the conversion inizialized with c2bs another time
- ;with the same buffers
- BScreenReStart
- move.l #BScreenList,bltpc
- BScreenStartMacro
- rts
-
-